This invention relates to a telephone employing adaptive filters for echo canceling and noise reduction and, in particular, to an adaptive filter that adapts quickly even in low signal to noise conditions.
As used herein, “telephone” is a generic term for a communication device that utilizes, directly or indirectly, a dial tone from a licensed service provider. As such, “telephone” includes desk telephones (see FIG. 1), cordless telephones (see FIG. 2), speaker phones (see FIG. 3), hands free kits (see FIG. 4), and cellular telephones (see FIG. 5), among others. For the sake of simplicity, the invention is described in the context of telephones but has broader utility; e.g. communication devices that do not utilize a dial tone, such as radio frequency transceivers.
There are two kinds of echo in a telephone system, an acoustic echo between an earphone or a loudspeaker and a microphone and electrical echo generated in the switched network for routing a call between stations. In a handset, acoustic echo is typically not much of a problem. In speaker phones, where several people huddle around a microphone and loudspeaker, acoustic feedback is much more of a problem. Hybrid circuits (two-wire to four-wire transformers) located at terminal exchanges or in remote subscriber stages of a fixed network are the principal sources of electrical echo.
One way to reduce echo is to program the frequency response of a filter to match the frequency content of an echo. A filter typically used is a finite impulse response (FIR) filter having programmable coefficients. The echo is subtracted from the echo bearing signal at the microphone. This technique can reduce echo as much as 30 dB, depending upon the coefficient adaptation algorithm. Additional means using non-linear techniques are typically added to further reduce an echo. Approximating a solution for an adaptive filter is like trying clothes on a squirming child: the input signal keeps changing. At one extreme, sudden and/or large changes can upset the approximation process and make the process diverge rather than converge. At the other extreme, a low echo to noise ratio can cause instability.
A robust filter for echo cancellation is known in the art; U.S. Pat. No. 6,377,682 (Benesty et al.), the entire contents of which is incorporated by reference herein. As used in the patent, “robust” means “insensitivity to small deviations of the real distribution from the assumed model distribution.” A more functional or practical definition is that robust means insensitivity to outside disturbing influences, such as near-end talk or noise.
Convergence relates to a process for approximating an answer. In high school, one is taught how to calculate the roots of a quadratic equation f(x)=0 from the coefficients of the terms on the left side of the equation. This is not the only way to solve the problem. One can simply substitute a value (a guess) for x in the equation and calculate an answer. The guess is modified depending upon the difference (the error) between the calculated answer and zero. The error could be as large numerically as the guess. Thus, some fraction of the error is typically used to adjust the guess. Hopefully, successive guesses come closer and closer to a root. This is convergence. Calculations stop when the size of the error becomes arbitrarily small. For a human being, this approach is time consuming and boring. For a computer, this approach is extremely useful and applicable to many situations other than solving quadratic equations.
A simple fraction is a linear error function. If the fraction is small, convergence is slow. Fast convergence is desired to avoid double talk (both parties talking) or other errors during adaptation. If the fraction is large, successive calculations could diverge rather than converge. The Benesty et al. patent discloses that robustness is obtained by using a non-linear function of the error to determine successive approximations of coefficients for modeling the echo path.
The Benesty et al. patent relies on a Fast Recursive Least Squares (FRLS) algorithm for adapting a programmable FIR (finite impulse response) filter. Other algorithms are known in the art, such as normalized Least Mean Squares (nLMS). It is also known in the art to vary the step size of an nLMS filter; see S. Makino, Y. Kaneda, and N. Koizumi, “Exponentially Weighted Stepsize NLMS Adaptive Filter Based on the Statistics of a Room Impulse Response, IEEE Trans. on Speech and Audio Processing, Vol. 1, No. 1, January 1993, pages 101–108.
A digital signal processor (DSP) can be programmed according to any one of the available algorithms. There are at least two problems associated with implementing an algorithm on a DSP. A first problem is that the implementation may be unique to a particular processor. This is undesirable because it ties the implementation to the availability of a single semiconductor device. A second problem is that the implementation may not be efficient.
“Efficiency” in a programming sense is the number of instructions required to perform a function. Few instructions are better or more efficient than many instructions. In languages other than machine (assembly) language, a line of code may involve hundreds of instructions. As used herein, “efficiency” relates to machine language instructions, not lines of code, because it is the number of instructions that can be executed per unit time that determines how long it takes to perform an operation or to perform some function.
Stability is also affected by the range and resolution of the DSP. Poor resolution in a fixed point DSP (too few bits) can cause bad echo cancellation. For example, resolution and range are conflicting requirements in a fixed-point implementation. A solution is to use the MAC (Multiply/ACcumulate) function available in some DSPs. Some commercially available DSPs include two or more MAC units. Stability is also affected by the ability of the cancellation algorithm to operate in noise and double-talk.
In view of the foregoing, it is therefore an object of the invention to provide an efficient adaptive filter that is stable during noise and double talk, yet has fast convergence to an echo cancellation solution.
Another object of the invention is to provide an efficient method for adapting a programmable filter.
A further object of the invention is to provide an efficient and robust adaptive filter for noise reduction that is relatively machine independent; i.e. not tied to a single processor.
Another object of the invention is to provide a robust adaptive filter that is stable when the echo is nearly the same as near end noise.